function validaLogin(form){
    var mensagens = document.getElementById("mensagens");
    
    form.login.style.border = "";
    form.senha.style.border = "";
    mensagens.innerHTML = "";
    
    if(form.login.value.length < 1){
        form.login.style.border = "2px solid red";
        mensagens.innerHTML = "Campo email em branco <br/>";
        return false;
    }
    
    if(form.senha.value.length < 1){
        form.senha.style.border = "2px solid red";
        mensagens.innerHTML = "Campo senha em branco <br/>";
        return false;
    }
    
    var re = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
    if(!re.test(form.login.value)){
        form.login.style.border = "2px solid red";
        mensagens.innerHTML = "O email deve ser preenchida no formato endereço@domínio.com <br/>";
        return false;
    }
}

function validaCadastro(form){
    var mensagens = document.getElementById("mensagens");
    
    form.nome.style.border = "";
    form.login.style.border = "";
    form.cidade.style.border = "";
    form.estado.style.border = "";
    form.telefone.style.border = ""; 
    form.senha.style.border = ""; 
    
    if(form.nome.value.length < 1){
        form.nome.style.border = "2px solid red";
        mensagens.innerHTML = "Campo nome em branco <br/>";
        return false;
    }
   
    if(form.login.value.length < 1){
        form.login.style.border = "2px solid red";
        mensagens.innerHTML = "Campo email em branco <br/>";
        return false;
    }
    
    if(form.cidade.value.length < 1){
        form.cidade.style.border = "2px solid red";
        mensagens.innerHTML = "Campo cidade em branco <br/>";
        return false;
    }
    
    if(form.estado.value.length < 1){
        form.estado.style.border = "2px solid red";
        mensagens.innerHTML = "Campo estado em branco <br/>";
        return false;
    }
    
    if(form.telefone.value.length < 1){
        form.telefone.style.border = "2px solid red";
        mensagens.innerHTML = "Campo telefone em branco <br/>";
        return false;
    }
    
    if(form.senha.value.length < 1){
        form.senha.style.border = "2px solid red";
        mensagens.innerHTML = "Campo senha em branco <br/>";
        return false;
    }
    
    if(form.senha.value !== form.confirmar_senha.value){
        form.senha.style.border = "2px solid red";
        mensagens.innerHTML = "Senhas não conferem <br/>";
        return false;
    }
    
    var re = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
    if(!re.test(form.login.value)){
        form.login.style.border = "2px solid red";
        mensagens.innerHTML = "O email deve ser preenchida no formato 'endereço@domínio.com' <br/>";
        return false;
    }
    
    re = /^\([0-9]{2}\) [0-9]{4}-[0-9]{4}/;
    if(!re.test(form.telefone.value)){
        form.telefone.style.border = "2px solid red";
        mensagens.innerHTML = "O telefone deve ser preenchida no formato '(xx) xxxx-xxxx' <br/>";
        return false;
    }
}

function validaCadastroReceita(form){    
    var erro = false;
    var mensagem = "";
    
    form.nome.style.border = "";
    form.desc.style.border = "";
    form.valorNutricional.style.border = "";
    form.tempoPreparo.style.border = "";
    form.cozimento.style.border = "";
    form.preparacao.style.border = "";
    form.modoServir.style.border = "";
    
    var qtd = document.getElementById("qtd_ingredientes").value;
    
    for(var i=0 ; i<qtd ;i++){
        if($('input[name=i_nome_'+i+']').css("border",""));
        if($('input[name=i_qtd_'+i+']').css("border",""));
        if($('input[name=i_unidade_'+i+']').css("border",""));
    }
    
    if(form.nome.value.length < 1 ){
        mensagem += "Nome da receita deve ser preenchido <br/>";
        erro = true;
        form.nome.style.border = "1px solid red";        
    }
    
    if(form.desc.value.length < 1 ){
        mensagem += "Descrição da receita deve ser preenchido <br/>";
        erro = true;
        form.desc.style.border = "1px solid red";
    }
    
    if(form.valorNutricional.value.length < 1 ){
        mensagem += "Valor nutricional da receita deve ser preenchido <br/>";
        erro = true;        
        form.valorNutricional.style.border = "1px solid red";
    }
    
    if(form.tempoPreparo.value.length < 1 ){
        mensagem += "Tempo de preparo da receita deve ser preenchido <br/>";
        erro = true;        
        form.tempoPreparo.style.border = "1px solid red";
    }
    
    if(form.cozimento.value.length < 1 ){
        mensagem += "Método de cozimento da receita deve ser preenchido <br/>";
        erro = true;        
        form.cozimento.style.border = "1px solid red";
    }
    
    if(form.preparacao.value.length < 1 ){
        mensagem += "Modo de preparo da receita deve ser preenchido <br/>";
        erro = true;        
        form.preparacao.style.border = "1px solid red";
    }
    
    if(form.porcoes.value.length < 1 ){
        mensagem += "Quantidade de porções da receita deve ser preenchido <br/>";
        erro = true;        
        form.porcoes.style.border = "1px solid red";
    }
    
    if(form.modoServir.value.length < 1 ){
        mensagem += "Modo de servir da receita deve ser preenchido <br/>";
        erro = true;        
        form.modoServir.style.border = "1px solid red";
    }
    
    for(var i=0 ; i<qtd ;i++){
        if($('input[name=i_nome_'+i+']').val().length < 1){
            mensagem += "Nome do ingrediente deve ser preenchido <br/>";
            erro = true;            
            $('input[name=i_nome_'+i+']').css("border","1px solid red");
        }
        
       if($('input[name=i_qtd_'+i+']').val().length < 1){
            mensagem += "Quantidade do ingrediente deve ser preenchido <br/>";
            erro = true;
            $('input[name=i_qtd_'+i+']').css("border","1px solid red");
        }
        
        if($('input[name=i_unidade_'+i+']').val().length < 1){
            mensagem += "Unidade do ingrediente deve ser preenchido <br/>";
            erro = true;
            $('input[name=i_unidade_'+i+']').css("border","1px solid red");
        }
        
        if(!$.isNumeric($('input[name=i_qtd_'+i+']').val())){
            mensagem += "Quantidade do ingrediente deve ser um número inteiro <br/>";
            erro = true;
            $('input[name=i_qtd_'+i+']').css("border","1px solid red");
        }
        
    }
    
    if(!$.isNumeric(form.porcoes.value)){
        mensagem += "Quantidade de porções deve ser um número inteiro <br/>";
        erro = true;        
        form.porcoes.style.border = "1px solid red";
    }
    
    if(!$.isNumeric(form.tempoPreparo.value)){
        mensagem += "Tempo de preparo deve ser em minutos <br/>";
        erro = true;        
        form.tempoPreparo.style.border = "1px solid red";
    }
    
    if(erro){ 
        var mensagens = document.getElementById("mensagens");
        
        mensagens.className = "alert alert-danger";
        mensagens.innerHTML = mensagem;
        return false;
    }
    
}

function validaComentario(form){
    if(form.text_comentario.value.length < 1){
        form.text_comentario.style.border = "1px solid red";
        return false;
    }
}

function adicionarIngrediente (){
    var ingredientes = document.getElementById("ingredientes");

    $("#ingredientes").append("<div id='ingrediente_"+count+"'>"+
            "<input class='i_input' name='nomeIngrediente' placeholder='Nome do ingrediente' type='text'/>"+
            "<input class='i_input' name='qtdIngrediente' placeholder='Quantidade' type='number'/>"+
            "<input class='i_input' name='unidadeIngrediente' placeholder='Unidade de Medida' type='text'/>"+
            "<button type='button' class='btn btn-sm btn-danger' onclick='removerIngrediente("+count+");'>-</button><br/>"+
            "</div>");
    count++;
}

function removerIngrediente (id){
    document.getElementById("ingrediente_"+id).remove();
}



//************************Geração XML****************************
function getRecipeObj() {
                var recipe = {
                    title: $('#nomeReceita').html(),
                    recipeinfo: {
                        blurb: $('#descricao').html(),
                        genre: $('#categoria').html(),
                        author: $('#autor').html(),
                        yield: $('#porcoes').html()
                    },
                    //valorNutricional: $('#valorNutricional').html(),
                    //cozimento: $('#cozimento').html(),
                    //tempoPreparo: $('#tempoPreparo').html(),
                    preparation: $('#preparo').html(),
                    serving: $('#servir').html(),
                    ingredientlist: []
                };

                var names = new Array();
                $('.nomeIngrediente').each(function () {
                    names.push($(this).html());
                });

                var unidades = new Array();
                $('.unidade').each(function () {
                    unidades.push($(this).html());
                });

                var qtds = new Array();
                $('.quantidade').each(function () {
                    qtds.push($(this).html());
                });

                for (var i = 0; i < names.length; i++) {
                    recipe.ingredientlist.push({
                        fooditem: names[i],
                        unit: unidades[i],
                        quantity: qtds[i]
                    });
                }

                return recipe;
            }

            function toXml(key, val) {
                var xml = "";
                if (val instanceof Array) {
                    xml += "<" + key + ">";
                    for (var i = 0; i < val.length; i++) {
                        xml += toXml("ingredient", val[i]);
                    }
                    xml += "</" + key + ">";
                } else if (typeof (val) === "object") {
                    xml += "<" + key + ">";
                    for (var k in val) {
                        xml += toXml(k, val[k]);
                    }
                    xml += "</" + key + ">";
                } else {
                    xml += "<" + key + ">" + val.toString() + "</" + key + ">";
                }
                return xml;
            }

            function jsonToXml(json) {
                var xml =   '<?xml version="1.0" encoding="UTF-8"?>' +
                            '<!DOCTYPE recipe PUBLIC "-//Happy-Monkey//DTD RecipeBook//EN" ' +
                            '"http://www.happy-monkey.net/recipebook/recipebook.dtd">' +
                            '<recipe>';

                for (var key in json) {
                    xml += toXml(key, json[key]);
                }

                return xml + "</recipe>";
            }

            function showRecipeXml() {
                if (typeof (btoa) === 'undefined') {
                    var ref = window.open();
                    ref.document.open();
                    ref.document.write(jsonToXml(getRecipeObj()).replace(/</g, "&lt;").replace(/>/g, "&gt;"));
                    ref.document.close();
                } else {
                    var mtype = 'text/xml';
                    var url = 'data:' + mtype + ';base64,' + btoa(jsonToXml(getRecipeObj()));
                    window.open(url);
                }
            }